Computers and other electronic devices are typically operable to execute multiple applications concurrently. For example, a computer may concurrently execute a word processing application, a web browser application, and an e-mail application. One or more of these multiple applications can be simultaneously displayed to a user using separate windows of a GUI of the computer. Further, each of these multiple applications can have multiple windows displayed on the GUI.
The concurrent display of multiple windows can be beneficial to a user when the user is working on a single task associated with each of the displayed windows. In this instance, the user can view information shown by the windows at the same time. For example, in a video conference, a user may desire to simultaneously display windows for a video conferencing application, a word processing application, and a spreadsheet application.
One problem with the simultaneous display of multiple windows is the arrangement of the windows on the GUI. The display area of the graphical user interface available to windows is limited. Therefore, it is desirable to position, size, and/or configure the windows on the GUI in order to maximize the benefit of the display area of the GUI for the user.
One existing method for arranging the display of multiple windows is to let the user arrange the windows manually to a desirable configuration. The user could rearrange the windows by re-sizing the windows and/or re-positioning the windows on the display. This manual rearrangement of the windows can be an inconvenient and time-consuming process.
Techniques have been developed for automatically rearranging windows on the GUI. For example, one system arranges windows on a display screen based on a class designation associated with the windows. However, the space on a display screen may not be optimally utilized because components within the windows are not arranged based on their importance to a user. For example, a portion within a window that is unimportant to a user may be arranged on a display screen in a position that is more prominent than a more important portion of the window. In addition, conventional systems that arrange windows based on display class do not dynamically update the arrangement of the windows as the relative importance of the windows or portions within the windows changes.
In view of the shortcomings of existing techniques for displaying windows, there exists a need for improved methods, systems, and computer program products for displaying windows on a GUI based on a relationship of the windows with one another.